/*
 * Copyright (C) 2010 TopCoder Inc., All Rights Reserved.
 */
package com.hercules.xre.protocol.testing.handlers;

import java.awt.image.BufferedImage;

/**
 * This interface represents screen shot capturer. It has single method: captureScreenshot() to capture the screen shot
 * of the currently active window. It is used by {@link ScreenshotEventHandler} to capture screenshot of active window
 * <p>
 * <b>Thread safety:</b> Implementation is required to be thread safe.
 *
 * @author bramandia, 7realm
 * @version 1.0
 */
public interface ScreenshotCapturer {
    /**
     * Capture the screenshot of the currently active window.
     *
     * @return the image of the currently active window
     * @throws ScreenshotCapturerException if there is any error occurred during capturing screenshot
     */
    BufferedImage captureActiveWindowScreenshot() throws ScreenshotCapturerException;
}
